CAMS KRA Upload API
The following document highlights the details of the CAMS KRA Upload API.
API Description
Objective
The CAMS KRA Upload API manages the submission and modification of KYC applications in the KYC registration agency. The API supports new KYC submissions, and modifications based on the application's status.
| Input | Output |
|---|---|
| KYC application details including personal information, address, documents, and application metadata | KYC application status, acknowledgment details, and application identifiers in a JSON response |
API URL
https://ind-engine.thomas.hyperverge.co/v1/async/CAMSKRAUpload
API Endpoint
CAMSKRAUpload
Overview
The CAMS KRA Upload API is RESTful and uses standard HTTP verbs and status codes. The responses are in JSON format and you should upload all images and files as form-data through a POST request.
Method - POST
Authentication
You need a unique pair of application ID ( appId ) and application key ( appKey ) from HyperVerge to verify your identity for accessing the API.
Headers
| Header | Mandatory / Optional | Description | Input Format |
|---|---|---|---|
| content-type | Mandatory | This parameter defines the media type for the request payload | application/json |
| appId | Mandatory | The application identifier shared by HyperVerge. You can find the details in the dashboard's credentials tab | This should be a unique value |
| appKey | Mandatory | The application key shared by HyperVerge. You can find the details in the dashboard's credentials tab | This should be a unique value |
| transactionId | Mandatory | A unique identifier for tracking a user journey | This should be both unique and easily associated with the user's journey in your application(s) |
Inputs
The following table provides the details of the parameters required for the CAMS KRA Upload API's request body:
| Parameter | Mandatory / Optional | Type | Description | Input Format | Default Value |
|---|---|---|---|---|---|
pan | Mandatory | string | The user's Permanent Account Number (PAN) | Format: 'CCCCCDDDDC' where 'C' represents a character and 'D' represents a digit | Not Applicable |
dob | Mandatory | string | The user's date of birth | DD-MM-YYYY | Not Applicable |
applicantTitle | Mandatory | string | The title of the applicant (e.g., Mr, Mrs, Ms, Dr) | Not Applicable | Not Applicable |
applicantFirstName | Mandatory | string | The first name of the applicant | Not Applicable | Not Applicable |
applicantMiddleName | Optional | string | The middle name of the applicant | Not Applicable | Not Applicable |
applicantLastName | Optional | string | The last name of the applicant | Not Applicable | Not Applicable |
relationship | Mandatory | string | The relationship to the applicant (e.g., father, mother, husband, self) | Not Applicable | Not Applicable |
fatherTitle | Mandatory | string | The title of the applicant's father | Not Applicable | Not Applicable |
fatherFirstName | Mandatory | string | The first name of the applicant's father | Not Applicable | Not Applicable |
fatherMiddleName | Optional | string | The middle name of the applicant's father | Not Applicable | Not Applicable |
fatherLastName | Optional | string | The last name of the applicant's father | Not Applicable | Not Applicable |
motherTitle | Optional | string | The title of the applicant's mother | Not Applicable | Not Applicable |
motherFirstName | Optional | string | The first name of the applicant's mother | Not Applicable | Not Applicable |
motherMiddleName | Optional | string | The middle name of the applicant's mother | Not Applicable | Not Applicable |
motherLastName | Optional | string | The last name of the applicant's mother | Not Applicable | Not Applicable |
maidenTitle | Optional | string | The maiden title of the applicant (for married women) | Not Applicable | Not Applicable |
maidenFirstName | Optional | string | The maiden first name of the applicant (for married women) | Not Applicable | Not Applicable |
maidenMiddleName | Optional | string | The maiden middle name of the applicant (for married women) | Not Applicable | Not Applicable |
maidenLastName | Optional | string | The maiden last name of the applicant (for married women) | Not Applicable | Not Applicable |
gender | Mandatory | string | The gender of the user. The valid values are
|
| Not Applicable |
maritalStatus | Mandatory | string | The marital status of the user
|
| Not Applicable |
occupation | Mandatory | string | The occupation of the user, specified by selecting a domain. For the complete list of valid occupation codes, please refer to this page | Allowed Values | Not Applicable |
applicantCitizenship | Mandatory | string | The nationality of the user. The valid values are
|
| Not Applicable |
applicantOtherCitizen | Optional. (Mandatory if applicantCitizenship is 'others') | string | The user's nationality, if not Indian; for example, Argentina, Greece, etc | Not Applicable | Not Applicable |
idProof | Mandatory | string | The document used as Proof of Identity. For the complete list of valid ID proof documents, please refer to this page | Allowed Values | Not Applicable |
idProofIdentityNo | Mandatory | string | The identification number linked to the ID proof document (e.g., Aadhaar number, Passport number) | Not Applicable | Not Applicable |
applicantKycNo | Optional | string | The unique KYC number of the applicant, if available | Not Applicable | Not Applicable |
appExmt | Mandatory | string | The value is "no" if the user's PAN card image has been submitted, and "yes" if user's exempted from submitting the PAN card |
| Not Applicable |
commAddress1 | Mandatory | string | The first line of the correspondence address. It includes the house number and the street name | Not Applicable | Not Applicable |
commAddress2 | Optional | string | The second line of the correspondence address. It includes the district name | Not Applicable | Not Applicable |
commAddress3 | Optional | string | The third line of the correspondence address. It includes the name of the corresponding state | Not Applicable | Not Applicable |
commpincode | Mandatory | string | The PIN code for the correspondence address | Not Applicable | Not Applicable |
commCity | Mandatory | string | The city of correspondence address | Not Applicable | Not Applicable |
commDistrict | Mandatory | string | The district of correspondence address | Not Applicable | Not Applicable |
commState | Mandatory | string | The state of correspondence address. For the complete list of allowed values, please refer to this page | Allowed Values | Not Applicable |
commCountry | Mandatory | string | The country of correspondence address. For the complete list of countries, please refer to this page | Allowed Values | India |
commTellNoOffCode | Optional | string | The ISD code for the user's office contact number | Not Applicable | Not Applicable |
commTellNoOff | Optional | string | The user's office contact number | Not Applicable | Not Applicable |
commTellNoRescode | Optional | string | The ISD code for the user's residential contact number | Not Applicable | Not Applicable |
commTellNoRes | Optional | string | The user's residential contact number | Not Applicable | Not Applicable |
commMobileNoCode | Mandatory | string | The ISD code for the user's mobile phone number | Not Applicable | Not Applicable |
commMobileNo | Mandatory | string | The user's mobile phone number | Not Applicable | Not Applicable |
commEmailId | Mandatory | string | The email address of the user | Not Applicable | Not Applicable |
commFaxCode | Optional | string | The ISD code for the user's fax number | Not Applicable | Not Applicable |
commFax | Optional | string | The fax number for the user | Not Applicable | Not Applicable |
comAddresstype | Mandatory | string | The type of correspondence address. For the complete list of accepted documents, please refer to this page | Allowed Values | Not Applicable |
commAddressProof | Mandatory | string | The document serving as proof of the correspondence address. For the complete list of accepted documents, please refer to this page | Allowed Values | Not Applicable |
commIdentityNo | Mandatory | string | The identification number linked to the correspondence address proof document. For instance, if the Aadhaar card is provided as the address proof, the Aadhaar number serves as the reference ID | Not Applicable | Not Applicable |
commAddressProofExpirydate | Optional | string | The validity date of the correspondence address proof, as specified in the address proof document | DD-MM-YYYY | Not Applicable |
perAddress1 | Mandatory | string | The first line of the permanent address. It includes the house number and the street name | Not Applicable | Not Applicable |
perAddress2 | Optional | string | The second line of the permanent address. It includes the name of the district | Not Applicable | Not Applicable |
perAddress3 | Optional | string | The third line of the permanent address. It includes the name of the state | Not Applicable | Not Applicable |
perPincode | Mandatory | string | The PIN code for the permanent address | Not Applicable | Not Applicable |
perCity | Mandatory | string | The city of the permanent address | Not Applicable | Not Applicable |
perDistrict | Mandatory | string | The district of the permanent address | Not Applicable | Not Applicable |
perState | Mandatory | string | The state of the permanent address. For the complete list of allowed values, please refer to this page | Allowed Values | Not Applicable |
perCountry | Mandatory | string | The country of the permanent address. For the complete list of countries, please refer to this page | Allowed Values | India |
perAddressProof | Mandatory | string | The document serving as proof of the permanent address. For the complete list of accepted documents, please refer to this page | Allowed Values | Not Applicable |
peridentityNo | Mandatory | string | The identification number linked to the permanent address proof document. For instance, if the Aadhaar card is provided as the address proof, the Aadhaar number serves as the reference ID | Not Applicable | Not Applicable |
perAddressproofExpiryDate | Optional | string | The validity date of the permanent address proof, as specified in the address proof document | DD-MM-YYYY | Not Applicable |
fatcaTaxJurisdiction | Mandatory | string | Indicates whether the applicant is subject to FATCA tax jurisdiction |
| Not Applicable |
fatcaCountryOfJurisdiction | Optional | string | The country of FATCA tax jurisdiction, if applicable | Not Applicable | Not Applicable |
fatcaPlaceBirth | Optional | string | The place of birth for FATCA reporting | Not Applicable | Not Applicable |
fatcaCountryBirth | Optional | string | The country of birth for FATCA reporting | Not Applicable | Not Applicable |
fatcaTin | Optional | string | The Tax Identification Number (TIN) for FATCA reporting | Not Applicable | Not Applicable |
fatcaAddress1 | Optional | string | The first line of the FATCA address | Not Applicable | Not Applicable |
fatcaAddress2 | Optional | string | The second line of the FATCA address | Not Applicable | Not Applicable |
fatcaAddress3 | Optional | string | The third line of the FATCA address | Not Applicable | Not Applicable |
fatcaPincode | Optional | string | The PIN code for the FATCA address | Not Applicable | Not Applicable |
fatcaCity | Optional | string | The city for the FATCA address | Not Applicable | Not Applicable |
fatcaDistrict | Optional | string | The district for the FATCA address | Not Applicable | Not Applicable |
fatcaState | Optional | string | The state for the FATCA address | Not Applicable | Not Applicable |
fatcacountry | Optional | string | The country for the FATCA address | Not Applicable | Not Applicable |
fatcaRelPerson | Mandatory | string | Indicates whether there is a related person for FATCA reporting |
| Not Applicable |
relPerKycNo | Optional | string | The KYC number of the related person, if applicable | Not Applicable | Not Applicable |
relPerTitle | Optional | string | The title of the related person | Not Applicable | Not Applicable |
relFirstName | Optional | string | The first name of the related person | Not Applicable | Not Applicable |
relMiddleName | Optional | string | The middle name of the related person | Not Applicable | Not Applicable |
relLastName | Optional | string | The last name of the related person | Not Applicable | Not Applicable |
relPerType | Optional | string | The type of related person | Not Applicable | Not Applicable |
relPerAddressType | Optional | string | The address type for the related person | Not Applicable | Not Applicable |
relPerAddressTypeExpiryDate | Optional | string | The expiry date of the related person's address type | DD-MM-YYYY | Not Applicable |
relPerIdentityNo | Optional | string | The identity number of the related person | Not Applicable | Not Applicable |
placeDeclaration | Mandatory | string | The place where the declaration is made | Not Applicable | Not Applicable |
ekycType | Mandatory | string | The type of eKYC verification (e.g., individual, non-individual) |
| Not Applicable |
docPerVerVideo | Optional | string | The URL of the performance verification video document | Not Applicable | Not Applicable |
ipvEmployeeName | Mandatory | string | The name of the person who is carrying out the in-person verification (IPV) | Not Applicable | Not Applicable |
ipvEmployeeCode | Mandatory | string | The employee code of the person carrying out the IPV | Not Applicable | Not Applicable |
ipvEmployeeDesignation | Mandatory | string | The designation of the person carrying out the IPV | Not Applicable | Not Applicable |
ipvEmployeeBranch | Mandatory | string | The branch of the person carrying out the IPV | Not Applicable | Not Applicable |
ipvInstitutionCode | Mandatory | string | The institution code where the IPV was conducted | Not Applicable | Not Applicable |
ipvInstitutionName | Mandatory | string | The institution name where the IPV was conducted | Not Applicable | Not Applicable |
ipvDoneBy | Mandatory | string | The name of the entity or person who performed the IPV | Not Applicable | Not Applicable |
kycEmployeeName | Mandatory | string | The name of the KYC employee processing the application | Not Applicable | Not Applicable |
kycEmployeeCode | Mandatory | string | The employee code of the KYC employee processing the application | Not Applicable | Not Applicable |
kycEmployeeBranch | Mandatory | string | The branch of the KYC employee processing the application | Not Applicable | Not Applicable |
kycEmployeeDesignation | Mandatory | string | The designation of the KYC employee processing the application | Not Applicable | Not Applicable |
kycInstitutionCode | OMandatory | string | The institution code where the KYC is being processed | Not Applicable | Not Applicable |
kycInstitutionName | Mandatory | string | The institution name where the KYC is being processed | Not Applicable | Not Applicable |
kycType | Mandatory | string | The mode of KYC verification. It could be one of the following:
|
| Not Applicable |
panCopy | Mandatory | string | The value is 'Y' if the user's PAN card image has been submitted; otherwise, the value is 'N' |
| Not Applicable |
exmtCat | Mandatory | string | The user was exempted from submitting their PAN card image due to one or more valid reasons. For the complete list of exemption criteria, please refer to this page | Allowed Values | Not Applicable |
docSign | Optional | string | The URL of the signature document | Not Applicable | Not Applicable |
docPan | Optional | string | The URL of the PAN document | Not Applicable | Not Applicable |
docEsignForm | Mandatory | string | The URL of the eSign form document | Not Applicable | Not Applicable |
aadhaarXml | Mandatory | string | The URL of the Aadhaar XML document | Not Applicable | Not Applicable |
aadhaarPasscode | Optional | string | The passcode for the Aadhaar document, if applicable | Not Applicable | Not Applicable |
aadhaarDigit | Optional | string | The last four digits of the Aadhaar number | Not Applicable | Not Applicable |
docAddressProof | Mandatory | string | The URL of the address proof document | Not Applicable | Not Applicable |
docPhoto | Mandatory | string | The URL of the applicant's photo document | Not Applicable | Not Applicable |
appDocAddrProofCorrespondence | Mandatory | string | The URL of the correspondence address proof document | Not Applicable | Not Applicable |
docCancelledCheque | Optional | string | The URL of the cancelled cheque document | Not Applicable | Not Applicable |
fatcaCountryResidency1 | Optional | string | The first country of residence for FATCA reporting | Not Applicable | Not Applicable |
fatcaTaxIdentificationNo1 | Optional | string | The first Tax Identification Number for FATCA reporting | Not Applicable | Not Applicable |
fatcaTaxExemptFlag1 | Optional | string | The first tax exempt flag for FATCA reporting | Not Applicable | Not Applicable |
fatcaTaxExemptReason1 | Optional | string | The first tax exempt reason for FATCA reporting | Not Applicable | Not Applicable |
fatcaCountryResidency2 | Optional | string | The second country of residence for FATCA reporting | Not Applicable | Not Applicable |
fatcaTaxIdentificationNo2 | Optional | string | The second Tax Identification Number for FATCA reporting | Not Applicable | Not Applicable |
fatcaTaxExemptFlag2 | Optional | string | The second tax exempt flag for FATCA reporting | Not Applicable | Not Applicable |
fatcaTaxExemptReason2 | Optional | string | The second tax exempt reason for FATCA reporting | Not Applicable | Not Applicable |
fatcaCountryResidency3 | Optional | string | The third country of residence for FATCA reporting | Not Applicable | Not Applicable |
fatcaTaxIdentificationNo3 | Optional | string | The third Tax Identification Number for FATCA reporting | Not Applicable | Not Applicable |
fatcaTaxExemptFlag3 | Optional | string | The third tax exempt flag for FATCA reporting | Not Applicable | Not Applicable |
fatcaTaxExemptReason3 | Optional | string | The third tax exempt reason for FATCA reporting | Not Applicable | Not Applicable |
fatcaCountryResidency4 | Optional | string | The fourth country of residence for FATCA reporting | Not Applicable | Not Applicable |
fatcaTaxIdentificationNo4 | Optional | string | The fourth Tax Identification Number for FATCA reporting | Not Applicable | Not Applicable |
fatcaTaxExemptFlag4 | Optional | string | The fourth tax exempt flag for FATCA reporting | Not Applicable | Not Applicable |
fatcaTaxExemptReason4 | Optional | string | The fourth tax exempt reason for FATCA reporting | Not Applicable | Not Applicable |
polConn | Optional | string | The PEP status of the user, which they can select based on the category that applies to them. The categories are:
|
| Not Applicable |
residentialStatus | Mandatory | string | The residential status of the user. For the complete list of valid values, please refer to this page | Allowed Values | Not Applicable |
kycMode | Optional | string | The mode of KYC verification. It could be one of the following:
|
| Not Applicable |
income | Optional | string | The user's gross annual income, represented as a range. For more details on income slabs, please refer to this page | Allowed Values | Not Applicable |
netwrth | Optional | string | The net worth of the user or the organization | Numeric value | Not Applicable |
networthDt | Optional | string | The net worth of the user or the organization as on date | DD-MM-YYYY | Not Applicable |
applicationStatus | Mandatory | string | The status of the KYC application (e.g., auto_approved, pending, etc.) | Not Applicable | Not Applicable |
appUpdtflg | Mandatory | string | The value should be selected based on the current status of the KYC application (obtained from the CAMS Search and Verify API). How to choose the correct value:
|
| Not Applicable |
othOcc | Optional | string | The occupation details of the user, if 'Others' (as from occupation's value) | Not Applicable | Not Applicable |
Request
The following code snippet demonstrates a standard curl request for the CAMS KRA Upload API:
curl --location --request POST 'https://ind-engine.thomas.hyperverge.co/v1/async/CAMSKRAUpload' \
--header 'Content-Type: application/json' \
--header 'appID: <Enter_the_HyperVerge_appId>' \
--header 'appKey: <Enter_the_HyperVerge_appKey>' \
--header 'transactionID: <Enter_the_HyperVerge_transactionID>' \
--data-raw '{
"pan": "<Enter_the_PAN>",
"dob": "<Enter_the_Date_of_Birth_DD-MM-YYYY>",
"applicantTitle": "<Enter_the_Applicant_Title>",
"applicantFirstName": "<Enter_the_Applicant_First_Name>",
"applicantMiddleName": "<Enter_the_Applicant_Middle_Name>",
"applicantLastName": "<Enter_the_Applicant_Last_Name>",
"relationship": "<Enter_the_Relationship>",
"fatherTitle": "<Enter_the_Father_Title>",
"fatherFirstName": "<Enter_the_Father_First_Name>",
"fatherMiddleName": "<Enter_the_Father_Middle_Name>",
"fatherLastName": "<Enter_the_Father_Last_Name>",
"motherTitle": "<Enter_the_Mother_Title>",
"motherFirstName": "<Enter_the_Mother_First_Name>",
"motherMiddleName": "<Enter_the_Mother_Middle_Name>",
"motherLastName": "<Enter_the_Mother_Last_Name>",
"maidenTitle": "<Enter_the_Maiden_Title>",
"maidenFirstName": "<Enter_the_Maiden_First_Name>",
"maidenMiddleName": "<Enter_the_Maiden_Middle_Name>",
"maidenLastName": "<Enter_the_Maiden_Last_Name>",
"gender": "<Enter_the_Gender>",
"maritalStatus": "<Enter_the_Marital_Status>",
"occupation": "<Enter_the_Occupation>",
"applicantCitizenship": "<Enter_the_Applicant_Citizenship>",
"applicantOtherCitizen": "<Enter_the_Other_Citizenship_if_Applicable>",
"idProof": "<Enter_the_ID_Proof_Type>",
"idProofIdentityNo": "<Enter_the_ID_Proof_Identity_Number>",
"applicantKycNo": "<Enter_the_Applicant_KYC_Number>",
"appExmt": "<Enter_the_Exemption_Status>",
"commAddress1": "<Enter_the_Correspondence_Address_Line_1>",
"commAddress2": "<Enter_the_Correspondence_Address_Line_2>",
"commAddress3": "<Enter_the_Correspondence_Address_Line_3>",
"commpincode": "<Enter_the_Correspondence_Pincode>",
"commCity": "<Enter_the_Correspondence_City>",
"commDistrict": "<Enter_the_Correspondence_District>",
"commState": "<Enter_the_Correspondence_State>",
"commCountry": "<Enter_the_Correspondence_Country>",
"commTellNoOffCode": "<Enter_the_Office_Telephone_Code>",
"commTellNoOff": "<Enter_the_Office_Telephone_Number>",
"commTellNoRescode": "<Enter_the_Residence_Telephone_Code>",
"commTellNoRes": "<Enter_the_Residence_Telephone_Number>",
"commMobileNoCode": "<Enter_the_Mobile_Number_Code>",
"commMobileNo": "<Enter_the_Mobile_Number>",
"commEmailId": "<Enter_the_Email_ID>",
"commFaxCode": "<Enter_the_Fax_Code>",
"commFax": "<Enter_the_Fax_Number>",
"comAddresstype": "<Enter_the_Address_Type>",
"commAddressProof": "<Enter_the_Correspondence_Address_Proof>",
"commIdentityNo": "<Enter_the_Correspondence_Identity_Number>",
"commAddressProofExpirydate": "<Enter_the_Correspondence_Address_Proof_Expiry_Date>",
"perAddress1": "<Enter_the_Permanent_Address_Line_1>",
"perAddress2": "<Enter_the_Permanent_Address_Line_2>",
"perAddress3": "<Enter_the_Permanent_Address_Line_3>",
"perPincode": "<Enter_the_Permanent_Pincode>",
"perCity": "<Enter_the_Permanent_City>",
"perDistrict": "<Enter_the_Permanent_District>",
"perState": "<Enter_the_Permanent_State>",
"perCountry": "<Enter_the_Permanent_Country>",
"perAddressProof": "<Enter_the_Permanent_Address_Proof>",
"peridentityNo": "<Enter_the_Permanent_Identity_Number>",
"perAddressproofExpiryDate": "<Enter_the_Permanent_Address_Proof_Expiry_Date>",
"fatcaTaxJurisdiction": "<Enter_the_FATCA_Tax_Jurisdiction>",
"fatcaCountryOfJurisdiction": "<Enter_the_FATCA_Country_of_Jurisdiction>",
"fatcaPlaceBirth": "<Enter_the_FATCA_Place_of_Birth>",
"fatcaCountryBirth": "<Enter_the_FATCA_Country_of_Birth>",
"fatcaTin": "<Enter_the_FATCA_TIN>",
"fatcaAddress1": "<Enter_the_FATCA_Address_Line_1>",
"fatcaAddress2": "<Enter_the_FATCA_Address_Line_2>",
"fatcaAddress3": "<Enter_the_FATCA_Address_Line_3>",
"fatcaPincode": "<Enter_the_FATCA_Pincode>",
"fatcaCity": "<Enter_the_FATCA_City>",
"fatcaDistrict": "<Enter_the_FATCA_District>",
"fatcaState": "<Enter_the_FATCA_State>",
"fatcacountry": "<Enter_the_FATCA_Country>",
"fatcaRelPerson": "<Enter_the_FATCA_Related_Person_Flag>",
"relPerKycNo": "<Enter_the_Related_Person_KYC_Number>",
"relPerTitle": "<Enter_the_Related_Person_Title>",
"relFirstName": "<Enter_the_Related_Person_First_Name>",
"relMiddleName": "<Enter_the_Related_Person_Middle_Name>",
"relLastName": "<Enter_the_Related_Person_Last_Name>",
"relPerType": "<Enter_the_Related_Person_Type>",
"relPerAddressType": "<Enter_the_Related_Person_Address_Type>",
"relPerAddressTypeExpiryDate": "<Enter_the_Related_Person_Address_Type_Expiry_Date>",
"relPerIdentityNo": "<Enter_the_Related_Person_Identity_Number>",
"placeDeclaration": "<Enter_the_Place_of_Declaration>",
"ekycType": "<Enter_the_eKYC_Type>",
"docPerVerVideo": "<Enter_the_Performance_Verification_Video_URL>",
"ipvEmployeeName": "<Enter_the_IPV_Employee_Name>",
"ipvEmployeeCode": "<Enter_the_IPV_Employee_Code>",
"ipvEmployeeDesignation": "<Enter_the_IPV_Employee_Designation>",
"ipvEmployeeBranch": "<Enter_the_IPV_Employee_Branch>",
"ipvInstitutionCode": "<Enter_the_IPV_Institution_Code>",
"ipvInstitutionName": "<Enter_the_IPV_Institution_Name>",
"ipvDoneBy": "<Enter_the_IPV_Done_By>",
"kycEmployeeName": "<Enter_the_KYC_Employee_Name>",
"kycEmployeeCode": "<Enter_the_KYC_Employee_Code>",
"kycEmployeeBranch": "<Enter_the_KYC_Employee_Branch>",
"kycEmployeeDesignation": "<Enter_the_KYC_Employee_Designation>",
"kycInstitutionCode": "<Enter_the_KYC_Institution_Code>",
"kycInstitutionName": "<Enter_the_KYC_Institution_Name>",
"kycType": "<Enter_the_KYC_Type>",
"panCopy": "<Enter_if_PAN_Copy_is_Submitted>",
"exmtCat": "<Enter_the_Exemption_Category>",
"docSign": "<Enter_the_Signature_Document_URL>",
"docPan": "<Enter_the_PAN_Document_URL>",
"docEsignForm": "<Enter_the_eSign_Form_Document_URL>",
"aadhaarXml": "<Enter_the_Aadhaar_XML_Document_URL>",
"aadhaarPasscode": "<Enter_the_Aadhaar_Passcode>",
"aadhaarDigit": "<Enter_the_Aadhaar_Last_Four_Digits>",
"docAddressProof": "<Enter_the_Address_Proof_Document_URL>",
"docPhoto": "<Enter_the_Photo_Document_URL>",
"appDocAddrProofCorrespondence": "<Enter_the_Correspondence_Address_Proof_Document_URL>",
"docCancelledCheque": "<Enter_the_Cancelled_Cheque_Document_URL>",
"fatcaCountryResidency1": "<Enter_the_FATCA_Country_Residency_1>",
"fatcaTaxIdentificationNo1": "<Enter_the_FATCA_Tax_Identification_Number_1>",
"fatcaTaxExemptFlag1": "<Enter_the_FATCA_Tax_Exempt_Flag_1>",
"fatcaTaxExemptReason1": "<Enter_the_FATCA_Tax_Exempt_Reason_1>",
"fatcaCountryResidency2": "<Enter_the_FATCA_Country_Residency_2>",
"fatcaTaxIdentificationNo2": "<Enter_the_FATCA_Tax_Identification_Number_2>",
"fatcaTaxExemptFlag2": "<Enter_the_FATCA_Tax_Exempt_Flag_2>",
"fatcaTaxExemptReason2": "<Enter_the_FATCA_Tax_Exempt_Reason_2>",
"fatcaCountryResidency3": "<Enter_the_FATCA_Country_Residency_3>",
"fatcaTaxIdentificationNo3": "<Enter_the_FATCA_Tax_Identification_Number_3>",
"fatcaTaxExemptFlag3": "<Enter_the_FATCA_Tax_Exempt_Flag_3>",
"fatcaTaxExemptReason3": "<Enter_the_FATCA_Tax_Exempt_Reason_3>",
"fatcaCountryResidency4": "<Enter_the_FATCA_Country_Residency_4>",
"fatcaTaxIdentificationNo4": "<Enter_the_FATCA_Tax_Identification_Number_4>",
"fatcaTaxExemptFlag4": "<Enter_the_FATCA_Tax_Exempt_Flag_4>",
"fatcaTaxExemptReason4": "<Enter_the_FATCA_Tax_Exempt_Reason_4>",
"polConn": "<Enter_the_Political_Connection_Status>",
"residentialStatus": "<Enter_the_Residential_Status>",
"kycMode": "<Enter_the_KYC_Mode>",
"income": "<Enter_the_Income>",
"netwrth": "<Enter_the_Net_Worth>",
"networthDt": "<Enter_the_Net_Worth_Date>",
"applicationStatus": "<Enter_the_Application_Status>",
"appUpdtflg": "<Enter_the_Update_Flag>",
"othOcc": "<Enter_the_Other_Occupation>",
"fetchKycData": "<Enter_if_KYC_Data_should_be_Fetched>"
}'
Success Response
The following code snippet demonstrates a success response from the CAMS KRA Upload API:
{
"status": "success",
"statusCode": 200,
"result": {
"applicationStatus": "INSERTED SUCCESSFULLY"//"Modification raised Successfully "
},
"uploadTimestamp": "2025-12-08T10:13:44.464Z",
"metaData": {
"requestId": "<Request_ID>",
"transactionId": "<Transaction_ID>"
}
}
Success Response Details
The following table outlines the details of the success response from the CAMS KRA Upload API:
| Parameter | Type | Description |
|---|---|---|
status | string | The status of the request |
statusCode | string | The HTTP status code of the response |
appPanNo | string | The PAN number associated with the KYC application |
appPanDob | string | The date of birth as specified in the PAN |
appName | string | The name of the user or organization associated with the application |
appStatus | string | Represents the initial status of the application |
appModfAck | string | The acknowledgment flag for KYC modifications |
appStatusdt | string | The date when the KYC application was initiated |
appEntrydt | string | The date when the KYC application was entered into the system |
appModdt | string | The date when the KYC application was last modified |
appPosCode | string | POS code of the Asset Management Company (AMC) on whose behalf the request is being updated |
appResponseDate | string | The date and time when the response was generated |
appTotalRec | string | The total number of records in the response |
requestId | string | The unique identifier for the request |
transactionId | string | The unique identifier for the transaction |
Error Responses
The following are some error responses from the CAMS KRA Upload API:
- Invalid Application Status
- PAN Exists And Pending Verification
- PAN Exists And Under Processing
- PAN Exists And KYC Registered
{
"statusCode": 400,
"status": "failure",
"result": {
"message": "Please enter valid application status"
},
"metaData": {
"requestId": "<Request_ID>",
"transactionId": "<Transaction_ID>"
}
}
{
"status": "failure",
"statusCode": "400",
"message": "The given PAN already exists and pending verification",
"metaData": {
"requestId": "<Request_ID>",
"transactionId": "<Transaction_ID>"
}
}
{
"status": "failure",
"statusCode": "400",
"message": "The given PAN already exists and under Processing",
"metaData": {
"requestId": "<Request_ID>",
"transactionId": "<Transaction_ID>"
}
}
{
"status": "failure",
"statusCode": "400",
"message": "The given PAN already exists and is KYC Registered",
"metaData": {
"requestId": "<Request_ID>",
"transactionId": "<Transaction_ID>"
}
}
- Internal Server Error
- Invalid Token Generation
- Invalid Encrypted Data
{
"statusCode": 500,
"status": "failure",
"result": {
"message": "Internal server error"
},
"metaData": {
"requestId": "<Request_ID>",
"transactionId": "<Transaction_ID>"
}
}
{
"status": "failure",
"statusCode": 500,
"message": "Invalid token generation",
"metaData": {
"requestId": "<Request_ID>",
"transactionId": "<Transaction_ID>"
}
}
{
"status": "failure",
"statusCode": 500,
"result": {
"message": "Invalid encrypted data"
},
"metaData": {
"requestId": "<Request_ID>",
"transactionId": "<Transaction_ID>"
}
}
- Image File Too Large
- PAN Available With Other KRA
- Unable To Connect With Other KRA
- Internal Server Error Generic
{
"status": "failure",
"statusCode": "500",
"message": "The uploaded image file too large. The file size should not exceed 3MB",
"metaData": {
"requestId": "<Request_ID>",
"transactionId": "<Transaction_ID>"
}
}
{
"status": "failure",
"statusCode": "500",
"message": "PAN already available with other KRA. Please check the respective KRA for status",
"metaData": {
"requestId": "<Request_ID>",
"transactionId": "<Transaction_ID>"
}
}
{
"status": "failure",
"statusCode": "500",
"message": "We are unable to connect with other KRA to verify KYC Status. Please try again later",
"metaData": {
"requestId": "<Request_ID>",
"transactionId": "<Transaction_ID>"
}
}
{
"status": "failure",
"statusCode": "500",
"message": "Internal Server Error",
"metaData": {
"requestId": "<Request_ID>",
"transactionId": "<Transaction_ID>"
}
}
- PAN Records Available With CAMS
- Video File Too Large
- PDF Size Exceeded
- Unable To Process Request
{
"status": "failure",
"statusCode": "500",
"message": "Unable to process, PAN records are already available with CAMS",
"metaData": {
"requestId": "<Request_ID>",
"transactionId": "<Transaction_ID>"
}
}
{
"status": "failure",
"statusCode": "500",
"message": "The uploaded video file too large. The file size should not exceed 3MB",
"metaData": {
"requestId": "<Request_ID>",
"transactionId": "<Transaction_ID>"
}
}
{
"status": "failure",
"statusCode": "500",
"message": "PDF size should not exceed 2MB",
"metaData": {
"requestId": "<Request_ID>",
"transactionId": "<Transaction_ID>"
}
}
{
"status": "failure",
"statusCode": "500",
"message": "We are unable to process your request, please try again late",
"metaData": {
"requestId": "<Request_ID>",
"transactionId": "<Transaction_ID>"
}
}
- PAN On Hold Or Modification Pending
- Uploaded File Too Large
{
"status": "failure",
"statusCode": "500",
"message": "The given PAN is ONHOLD OR Modification request is Pending",
"metaData": {
"requestId": "<Request_ID>",
"transactionId": "<Transaction_ID>"
}
}
{
"status": "failure",
"statusCode": "500",
"message": "The uploaded file too large. The file size should be less than 500 kb",
"metaData": {
"requestId": "<Request_ID>",
"transactionId": "<Transaction_ID>"
}
}
Error Response Details
A failure or error response contains a failure status with a relevant status code and error message.
The following table lists all error responses:
| Status Code | Error Message | Error Description | Error Resolution |
|---|---|---|---|
| 400 | Please enter valid application status | The application status value provided is not a valid enum value | Provide a valid application status value from the allowed enum values |
| 400 | The given PAN already exists and pending verification | The PAN provided already exists in the system and is currently pending verification | Wait for the verification to complete or check the status using the Search and Verify API |
| 400 | The given PAN already exists and under Processing | The PAN provided already exists in the system and is currently being processed | Wait for the processing to complete or check the status using the Search and Verify API |
| 400 | The given PAN already exists and is KYC Registered | The PAN provided already exists in the system and is already KYC registered | Use the Search and Verify API to check the existing KYC status or proceed with modification if needed |
| 500 | Internal server error | An internal server error occurred while processing the request | Please check the request headers or contact the HyperVerge team for resolution |
| 500 | Invalid token generation | Invalid credentials provided for token generation | Verify and provide valid credentials |
| 500 | Invalid encrypted data | Issue due to invalid inputs in the request | Verify and provide valid input data |
| 500 | The uploaded image file too large. The file size should not exceed 3MB | The image file uploaded exceeds the maximum allowed file size of 3MB | Reduce the image file size to be less than 3MB and retry the request |
| 500 | PAN already available with other KRA. Please check the respective KRA for status | The PAN provided is already registered with another KRA (not CAMS) | Check the status with the respective KRA or use the Search and Verify API to identify which KRA has the PAN |
| 500 | We are unable to connect with other KRA to verify KYC Status. Please try again later | The system is unable to establish a connection with other KRAs to verify the KYC status | Retry the request after some time or contact the HyperVerge team if the issue persists |
| 500 | Internal Server Error | An internal server error occurred | Please check the request headers or contact the HyperVerge team for resolution |
| 500 | Unable to process, PAN records are already available with CAMS | The PAN provided already has records available with CAMS KRA | Check the existing records using the Search and Verify API or proceed with modification if needed |
| 500 | The uploaded video file too large. The file size should not exceed 3MB | The video file uploaded exceeds the maximum allowed file size of 3MB | Reduce the video file size to be less than 3MB and retry the request |
| 500 | PDF size should not exceed 2MB | The PDF file uploaded exceeds the maximum allowed file size of 2MB | Reduce the PDF file size to be less than 2MB and retry the request |
| 500 | We are unable to process your request, please try again late | The system is temporarily unable to process the request | Retry the request after some time or contact the HyperVerge team if the issue persists |
| 500 | The given PAN is ONHOLD OR Modification request is Pending | The PAN provided has a status of ONHOLD or has a pending modification request | Wait for the hold status to be resolved or for the modification request to complete, or check the status using the Search and Verify API |
| 500 | The uploaded file too large. The file size should be less than 500 kb | The file uploaded exceeds the maximum allowed file size of 500 KB | Reduce the file size to be less than 500 KB and retry the request |